This invention relates generally to semiconductor nonvolatile memories operable with target devices, and more particularly to executing from a semiconductor nonvolatile memory such applications that may have a resident database on a processor-based device.
Many processor-based devices, such as consumer devices for use in portable environments or otherwise, may include a semiconductor nonvolatile memory for erasably and programmably storing information that do not need to be periodically refreshed. One type of commonly available and used semiconductor nonvolatile memory is a flash memory. With the rise of content driven networks, many user applications require a mix of code and data to operate the consumer devices. For instance, a variety of wireless devices including cellular phones include a flash memory to store different data files and resident applications. Likewise, a portable device, e.g., a personal digital assistant (PDA), incorporates a flash memory for storing, among other things, certain operating system files and configurable data. In some situations, a flash memory may allow data found in application programs to be stored and manipulated by a resident file management system. In addition, memory managers included in a target device handle the housekeeping functions of code and data management. Typically, file systems and memory managers in conjunction with the device hardware enable users of such devices to subscribe and receive a variety of ancillary services apart from contributing in basic device operation.
However, application programs and resident data associated with such services and/or basic device operation may need to be managed, e.g., periodically updated within a target device. For application management, a variety of application programs including execute-in-place (XIP) applications may need to be stored and executed in the target device. Typically, to execute an application, an executable form of the application is stored along with a database on a flash memory. Thereafter, the executable form of the application is read for loading, copied to a random access memory (RAM), and reassembled into an executable file that can be executed on the target device. This loading and reassembling of the application in the RAM inevitably introduces operational efficiencies while exhausting precious RAM resources. Moreover, before the application may be executed, a startup time may be consumed to begin a RAM operation, adversely delaying any desired updates at the target device particularly in time critical circumstances.
Thus, there is a continuing need for better ways to manage applications in a target device, especially executing applications from a semiconductor nonvolatile memory that may have a resident database.